Криптографічні системи та протоколи

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Інформаційні технології

Частина тексту файла

Міністерство освіти і науки України Національний університет «Львівська Політехніка» Інститут комп’ютерних технологій автоматики та метрології Кафедра Безпеки Інформаційних Технологій  Звіт Про виконання лабораторної роботи № 3 “Криптографічні системи та протоколи” Львів 2012 Мета роботи: Вивчити математичний апарат для опису афінних шифрів та розробити програмне забезпечення для реалізації афінних шифрів. Теоретичні відомості Афінний шифр k-го порядку. Ключ: A(GLk(Zn) і S( Znk. Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою E(X)=AX+S. Розшифрування. Кожна k-грама X' криптотексту заміщується k-грамою D(X’)=A’X’+S’, де A’=A-1 і S’=–A’S - розшифровуючий ключ. Нехай потрібно зашифрувати повідомлення місто за допомогою ключа  i  в Z33. Частину операції зашифрування наведено вище. Після розбиття повідомлення на вектори-біграми і множення на них матриці А за модулем 33 було отримано . Додаємо до кожного стовпчика вектор S і отримуємо  тобто криптотекст ияґхуч. Знайдемо також розшифровуючий ключ. У попередньому прикладі було отримано матрицю . Обчислюємо . Провівши розшифрування, одержимо , а саме повідомлення містоа. ЗАВДАННЯ 1) Вивчити основні математичні залежності, які використовуються для опису шифрів зсуву, лінійного та афінного першого та вищих порядків. 2) Скласти блок-схеми алгоритмів та програму для реалізації зашифрування та розшифрування відкритого тексту за допомогою афінного шифру 3-го порядку. Блок-схема: Остаточна версія програми: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { if (jRadio1.isSelected() == true) { String inpt = this.inText.getText(); StringBuilder sb = new StringBuilder(inpt); if (sb.length() != 0) { while (!Character.isLetter(sb.charAt(0))) { sb.deleteCharAt(0); } // continue text cleaning. for (int i = 0; i < sb.length(); i++) { if (!Character.isLetter(sb.charAt(i)) && !Character.isWhitespace(sb.charAt(i))) { sb.setCharAt(i, ' '); } } for(int i = 0; i<sb.length(); i++){ if(Character.isWhitespace(sb.charAt(i))){ sb.deleteCharAt(i); } } for(int i = 0; i<sb.length(); i++){ if(Character.isWhitespace(sb.charAt(i))){ sb.deleteCharAt(i); } } } for(;;){ if(sb.length()%3 != 0){ sb.append("а"); } else break; } inpt = sb.toString(); int a[] = new int [9]; //ключ String keyStr = this.jKey1.getText(); char keyCh [] = keyStr.toCharArray(); for(int i = 0; i<9; i++){ a[i] = (int)keyCh[i]; } int s[] = new int [3]; String key2 = this.jKey2.getText(); char [] key2c = key2.toCharArray(); for(int i = 0; i<3; i++){ s[i] = (int)key2c[i]; } char kchar[] = inpt.toCharArray(); int kn[] = new int [kchar.length]; int k[] = new int [kchar.length]; for (int i = 0; i<kchar.length; i++){ k[i] = kchar[i]-1071; } for (int i = 0; i<inpt.length(); i = i+3){ kn[i]=a[0]*k[i]+a[1]*k[i+1]+a[2]*k[i+2]+s[0]; kn[i+1]=a[3]*k[i]+a[4]*k[i+1]+a[5]*k[i+2]+s[1]; kn[i+2]=a[6]*k[i]+a[7]*k[i+1]+a[8]*k[i+2]+s[2]; int j; for (j = 0;; j++){ if (kn[i] > 33){ kn[i] = kn[i]-33; } else break; } for (j = 0;; j++){ if (kn[i+1] > 33){ kn[i+1] = kn[i+1]-33; } else...
Антиботан аватар за замовчуванням

22.01.2013 12:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини